diff --git a/htmlcc/parser.py b/htmlcc/parser.py
index 2dd9ad8..3c7ad94 100644
--- a/htmlcc/parser.py
+++ b/htmlcc/parser.py
@@ -109,6 +109,13 @@ class Parser:
# {% endpage %}
self.emitter.end_page()
self.in_html = False
+ elif command.startswith('while '):
+ # {% while ... %}
+ condition = command[len('while '):].strip()
+ self.emitter.emit('while (' + condition + ') {')
+ elif command == 'endwhile':
+ # {% endwhile %}
+ self.emitter.emit('}')
else:
raise SyntaxError(f'Unknown command "{command}"')