melston

melston

Programming Elixir > 1.6 (page 167)

After following the instructions pretty successfully up to this point I find I can’t do a mix docs with the configuration given. I’m not sure what to do to get Earmark to work in this case.

When I ran mix docs as shown on page 167 I got the following:

Generating docs...
** (FunctionClauseError) no function clause matching in EarmarkParser.Helpers.LookaheadHelpers.has_still_opening_backtix/2

    The following arguments were given to EarmarkParser.Helpers.LookaheadHelpers.has_still_opening_backtix/2:

        # 1
        [verbatim: "Handle the command line parsing and the dispatch to"]

        # 2
        nil

    Attempted function clauses (showing 8 out of 8):

        defp has_still_opening_backtix(-[]-, -:force_outside-)
        defp has_still_opening_backtix(-[]-, +open+)
        defp has_still_opening_backtix(-[{:other, _} | rest]-, +nil+)
        defp has_still_opening_backtix(-[{:backtix, btx} | rest]-, +nil+)
        defp has_still_opening_backtix(-[{:escape, _} | rest]-, +nil+)
        defp has_still_opening_backtix(+[_ | rest]+, -:force_outside-)
        defp has_still_opening_backtix(-[{:backtix, btx} | rest]-, -open = {_, openedbtx}-)
        defp has_still_opening_backtix(+[_ | rest]+, -open = {_, _}-)

    (earmark_parser 1.4.12) lib/earmark_parser/helpers/lookahead_helpers.ex:45: EarmarkParser.Helpers.LookaheadHelpers.has_still_opening_backtix/2
    (earmark_parser 1.4.12) lib/earmark_parser/helpers/lookahead_helpers.ex:17: EarmarkParser.Helpers.LookaheadHelpers.opens_inline_code/1
    (earmark_parser 1.4.12) lib/earmark_parser/parser.ex:531: EarmarkParser.Parser._inline_or_text?/2
    (earmark_parser 1.4.12) lib/earmark_parser/parser.ex:359: EarmarkParser.Parser._consolidate_para/3
    (earmark_parser 1.4.12) lib/earmark_parser/parser.ex:165: EarmarkParser.Parser._parse/4
    (earmark_parser 1.4.12) lib/earmark_parser/parser.ex:66: EarmarkParser.Parser.lines_to_blocks/3
    (earmark_parser 1.4.12) lib/earmark_parser/parser.ex:60: EarmarkParser.Parser.parse_lines/3
    (earmark_parser 1.4.12) lib/earmark_parser/parser.ex:26: EarmarkParser.Parser.parse_markdown/2

I tried updating to the latest version of Earmark available but got the following when running mix docs:

...

== Compilation error in file lib/Issues/github_Issues.ex ==
** (Protocol.UndefinedError) protocol Enumerable not implemented for :info of type Atom
    (elixir 1.11.2) lib/enum.ex:1: Enumerable.impl_for!/1
    (elixir 1.11.2) lib/enum.ex:141: Enumerable.reduce/3
    (elixir 1.11.2) lib/enum.ex:369: Enum.any?/2
    (logger 1.11.2) lib/logger.ex:1020: Logger.macro_log/4
    (logger 1.11.2) expanding macro: Logger.info/1
    lib/Issues/github_Issues.ex:11: Issues.GithubIssues.fetch/2

I can eliminate the last set of errors by commenting out the calls to Logger.debug and Logger.info.

First Post!

faust

faust

Hi, I know it’s a bit late to answer this, but I hope it might help someone else who faces the same situation.
I had the same problem, and the solution was to update the docs library.
I guess the ones in the book aren’t compatible with newer Elixir versions.

I ended up using:

{:ex_doc, "~> 0.29.1"},
{:earmark, "~> 1.4.33"},

Where Next?

Popular Pragmatic Bookshelf topics Top

GilWright
Working through the steps (checking that the Info,plist matches exactly), run the demo game and what appears is grey but does not fill th...
New
ianwillie
Hello Brian, I have some problems with running the code in your book. I like the style of the book very much and I have learnt a lot as...
New
adamwoolhether
When trying to generate the protobuf .go file, I receive this error: Unknown flag: --go_opt libprotoc 3.12.3 MacOS 11.3.1 Googling ...
New
brian-m-ops
#book-python-testing-with-pytest-second-edition Hi. Thanks for writing the book. I am just learning so this might just of been an issue ...
New
jgchristopher
“The ProductLive.Index template calls a helper function, live_component/3, that in turn calls on the modal component. ” Excerpt From: Br...
New
akraut
The markup used to display the uploaded image results in a Phoenix.LiveView.HTMLTokenizer.ParseError error. lib/pento_web/live/product_l...
New
creminology
Skimming ahead, much of the following is explained in Chapter 3, but new readers (like me!) will hit a roadblock in Chapter 2 with their ...
New
dtonhofer
@parrt In the context of Chapter 4.3, the grammar Java.g4, meant to parse Java 6 compilation units, no longer passes ANTLR (currently 4....
New
SlowburnAZ
Getting an error when installing the dependencies at the start of this chapter: could not compile dependency :exla, "mix compile" failed...
New
dachristenson
I just bought this book to learn about Android development, and I’m already running into a major issue in Ch. 1, p. 20: “Update activity...
New

Other popular topics Top

ohm
Which, if any, games do you play? On what platform? I just bought (and completed) Minecraft Dungeons for my Nintendo Switch. Other than ...
New
brentjanderson
Bought the Moonlander mechanical keyboard. Cherry Brown MX switches. Arms and wrists have been hurting enough that it’s time I did someth...
New
AstonJ
I’ve been hearing quite a lot of comments relating to the sound of a keyboard, with one of the most desirable of these called ‘thock’, he...
New
PragmaticBookshelf
Rust is an exciting new programming language combining the power of C with memory safety, fearless concurrency, and productivity boosters...
New
AstonJ
Do the test and post your score :nerd_face: :keyboard: If possible, please add info such as the keyboard you’re using, the layout (Qw...
New
DevotionGeo
The V Programming Language Simple language for building maintainable programs V is already mentioned couple of times in the forum, but I...
New
rustkas
Intensively researching Erlang books and additional resources on it, I have found that the topic of using Regular Expressions is either c...
New
New
First poster: AstonJ
Jan | Rethink the Computer. Jan turns your computer into an AI machine by running LLMs locally on your computer. It’s a privacy-focus, l...
New
PragmaticBookshelf
Develop, deploy, and debug BEAM applications using BEAMOps: a new paradigm that focuses on scalability, fault tolerance, and owning each ...
New

Sub Categories: